home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_c29.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  63.3 KB  |  2,131 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. void r31make(T31* C,T0* a1,T0* a2){
  10. T0* _an2=NULL;
  11. int _rank=0;
  12. int _i=0;
  13. T0* _tla2=NULL;
  14. T0* _tla=NULL;
  15. T0* _tlf=NULL;
  16. T0* _an=NULL;
  17. r31standard_make(C,a1,a2);
  18. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  19. while (!((_i)==(0))) {
  20. _an=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  21. _tlf=(((T873*)((T873*)_an)))->_result_type/*24*/;
  22. if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
  23. case 648: 
  24. break;
  25. default:
  26. _tlf=NULL;
  27. };/*IF*/if ((_tlf)!=((void*)(NULL))) {
  28. _rank=r31rank_of(C,X776to_string((((T648*)((T648*)_tlf)))->_like_what/*12*/));
  29. /*IF*/if ((_rank)==(_i)) {
  30. r683add_position((((T648*)((T648*)_tlf)))->_start_position/*4*/);
  31. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
  32. r683fatal_error(((T683*)(oBC364eh)),b1);
  33. }/*]*/
  34. }
  35.  else if ((_rank)>(0)) {
  36. {T886*n=malloc(sizeof(*n));
  37. *n=M886;
  38. r886refer_to(n,X776start_position((((T648*)((T648*)_tlf)))->_like_what/*12*/),(T0*)C,_rank);
  39. _an2=(T0*)n;
  40. }
  41. {T239*n=malloc(sizeof(*n));
  42. *n=M239;
  43. r239make(n,(((T648*)((T648*)_tlf)))->_start_position/*4*/,_an2);
  44. _tla=(T0*)n;
  45. }
  46. /*[IRF3.3set_result_type*/((((T873*)(((T873*)_an))))->_result_type)=(_tla);
  47. /*]*/
  48. }
  49. /*FI*/}
  50. /*FI*/_i=(_i)-(1);
  51. }
  52. /*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  53. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  54. while (!((_i)==(0))) {
  55. _tla=(((T873*)((T873*)(r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i)))))->_result_type/*24*/;
  56. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  57. case 239: 
  58. break;
  59. default:
  60. _tla=NULL;
  61. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  62. _rank=r31rank_of(C,(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_to_string/*12*/);
  63. _tla2=(((T873*)((T873*)(r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_rank)))))->_result_type/*24*/;
  64. if(NULL!=(_tla2))switch(((T0*)_tla2)->id) {
  65. case 239: 
  66. break;
  67. default:
  68. _tla2=NULL;
  69. };/*IF*/if ((_tla2)!=((void*)(NULL))) {
  70. r683add_position((((T239*)((T239*)_tla)))->_start_position/*4*/);
  71. r683add_position((((T239*)((T239*)_tla2)))->_start_position/*4*/);
  72. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
  73. r683fatal_error(((T683*)(oBC364eh)),b1);
  74. }/*]*/
  75. }
  76. /*FI*/}
  77. /*FI*/_i=(_i)-(1);
  78. }
  79. }
  80. /*FI*/}
  81. /*No:FORMAL_ARG_LIST.name*/
  82. /*No:FORMAL_ARG_LIST.nb_errors*/
  83. T0* r31type(T31* C,int a1){
  84. T0* R=NULL;
  85. R=(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),a1)/*)*/))))->_result_type/*24*/;
  86. return R;
  87. }
  88. void r31standard_make(T31* C,T0* a1,T0* a2){
  89. int _actual_count=0;
  90. int _il=0;
  91. C->_start_position=a1;
  92. C->_list=a2;
  93. _il=1;
  94. while (!((_il)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
  95. _actual_count=(_actual_count)+(X411count(r382item(((T382*)((((T31*)C))->_list/*8*/)),_il)));
  96. _il=(_il)+(1);
  97. }
  98. {T65*n=malloc(sizeof(*n));
  99. *n=M65;
  100. r65make(n,1,_actual_count);
  101. C->_flat_list=(T0*)n;
  102. }
  103. _il=1;
  104. while (!((_il)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
  105. X411append_in(r382item(((T382*)((((T31*)C))->_list/*8*/)),_il),(T0*)C);
  106. _il=(_il)+(1);
  107. }
  108. }
  109. /*No:FORMAL_ARG_LIST.start_position*/
  110. void r31compile_to_c_in(T31* C,T0* a1){
  111. T0* _t=NULL;
  112. int _i=0;
  113. _i=1;
  114. while (!((_i)>(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  115. _t=X291run_type(r31type(C,_i));
  116. X291c_type_for_argument_in(_t,a1);
  117. r7extend(((T7*)a1),'\40');
  118. r7extend(((T7*)a1),'a');
  119. r2append_in(_i,a1);
  120. _i=(_i)+(1);
  121. /*IF*/if ((_i)<=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  122. r7extend(((T7*)a1),'\54');
  123. }
  124. /*FI*/}
  125. }
  126. void r31inline_one_pc(T31* C){
  127. T0* _t=NULL;
  128. int _i=0;
  129. _i=1;
  130. while (!((_i)>(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  131. _t=X291run_type(r31type(C,_i));
  132. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC31tmp_string)))))->_count)=(0);
  133. /*]*/
  134. X291c_type_for_argument_in(_t,oBC31tmp_string);
  135. r7extend(((T7*)(oBC31tmp_string)),'\40');
  136. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC31tmp_string);
  137. /*]*/
  138. r324inline_level_incr(((T324*)(oBC364cpp)));
  139. r324print_argument(((T324*)(oBC364cpp)),_i);
  140. r324inline_level_decr(((T324*)(oBC364cpp)));
  141. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  142. char b1='\75';
  143. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  144. }/*]*/
  145. /*]*/
  146. r324put_ith_argument(((T324*)(oBC364cpp)),_i);
  147. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  148. /*]*/
  149. _i=(_i)+(1);
  150. }
  151. }
  152. /*No:FORMAL_ARG_LIST.fz_00*/
  153. T0* r31to_runnable(T31* C,T0* a1){
  154. T0* R=NULL;
  155. T0* _n2=NULL;
  156. T0* _n1=NULL;
  157. int _i=0;
  158. /*IF*/if (((((T31*)C))->_current_type/*16*/)==((void*)(NULL))) {
  159. C->_current_type=a1;
  160. R=(T0*)C;
  161. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  162. while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  163. _n1=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  164. _n2=r873to_runnable(((T873*)_n1),a1);
  165. /*IF*/if ((_n2)==((void*)(NULL))) {
  166. r31error((((T873*)((T873*)_n1)))->_start_position/*16*/,((T0*)ms3_535));
  167. }
  168.  else if ((_n1)!=((void*)(_n2))) {
  169. /*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  170. T0* b1=_n2;
  171. int b2=_i;
  172. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  173. }/*]*/
  174. }
  175. /*FI*/r873name_clash(((T873*)_n2));
  176. _i=(_i)-(1);
  177. }
  178. }
  179. else {
  180. {T31*n=malloc(sizeof(*n));
  181. *n=M31;
  182. r31runnable_from_current(n,(T0*)C,a1);
  183. R=(T0*)n;
  184. }
  185. }
  186. /*FI*/return R;
  187. }
  188. /*No:FORMAL_ARG_LIST.em1*/
  189. /*No:FORMAL_ARG_LIST.list*/
  190. T0*oBC31tmp_string=NULL;
  191. int r31rank_of(T31* C,T0* a1){
  192. int R=0;
  193. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  194. while (!(((R)==(0))||((a1)==((void*)((((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),R)/*)*/))))->_to_string/*12*/))))) {
  195. R=(R)-(1);
  196. }
  197. return R;
  198. }
  199. void r31external_prototype(T31* C,T0* a1){
  200. T0* _t=NULL;
  201. int _i=0;
  202. _i=1;
  203. while (!((_i)>(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  204. _t=X291run_type(r31type(C,_i));
  205. X291c_type_for_external_in(_t,a1);
  206. r7extend(((T7*)a1),'\40');
  207. r7extend(((T7*)a1),'a');
  208. r2append_in(_i,a1);
  209. _i=(_i)+(1);
  210. /*IF*/if ((_i)<=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  211. r7extend(((T7*)a1),'\54');
  212. }
  213. /*FI*/}
  214. }
  215. /*No:FORMAL_ARG_LIST.current_type*/
  216. int r31is_a_in(T31* C,T0* a1,T0* a2){
  217. int R=0;
  218. T0* _t2=NULL;
  219. T0* _t1=NULL;
  220. int _i=0;
  221. /*IF*/if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)a1)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  222. r683add_position((((T31*)((T31*)a1)))->_start_position/*4*/);
  223. r31error((((T31*)C))->_start_position/*4*/,((T0*)ms8_31));
  224. }
  225. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  226. R=1;
  227. _i=1;
  228. while (!((!(R))||((_i)>((((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/)))) {
  229. _t1=r31type(C,_i);
  230. _t2=r31type(((T31*)a1),_i);
  231. /*IF*/if (!(X291is_a_in(_t1,_t2,a2))) {
  232. R=0;
  233. r683print_as_error(((T683*)(oBC364eh)));
  234. r683add_position(X291start_position(_t1));
  235. r683add_position(X291start_position(_t2));
  236. /*[IRF3.6append*/{T0* b1=((T0*)ms9_31);
  237. r7append(((T7*)(oBC683explanation)),b1);
  238. }/*]*/
  239. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  240. r7append(((T7*)(oBC683explanation)),b1);
  241. }/*]*/
  242. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  243. }
  244. /*FI*/_i=(_i)+(1);
  245. }
  246. }
  247. /*FI*/return R;
  248. }
  249. /*No:FORMAL_ARG_LIST.fz_cad*/
  250. /*No:FORMAL_ARG_LIST.fz_dot*/
  251. void r31runnable_from_current(T31* C,T0* a1,T0* a2){
  252. T0* _n2=NULL;
  253. T0* _n1=NULL;
  254. int _i=0;
  255. C->_start_position=(((T31*)((T31*)a1)))->_start_position/*4*/;
  256. C->_list=(((T31*)((T31*)a1)))->_list/*8*/;
  257. C->_current_type=a2;
  258. C->_flat_list=r65twin(((T65*)((((T31*)((T31*)a1)))->_flat_list/*12*/)));
  259. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  260. while (!((_i)==(0))) {
  261. _n1=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  262. _n2=r873to_runnable(((T873*)_n1),a2);
  263. /*IF*/if ((_n2)==((void*)(NULL))) {
  264. r31error((((T873*)((T873*)_n1)))->_start_position/*16*/,((T0*)ms3_535));
  265. }
  266. /*FI*//*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  267. T0* b1=_n2;
  268. int b2=_i;
  269. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  270. }/*]*/
  271. _i=(_i)-(1);
  272. }
  273. }
  274. void r31add_last(T31* C,T0* a1){
  275. T0* _n2=NULL;
  276. int _i=0;
  277. _i=1;
  278. while (!((r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i))==((void*)(NULL)))) {
  279. _n2=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  280. /*IF*/if (((((T873*)((T873*)_n2)))->_to_string/*12*/)==((void*)((((T873*)((T873*)a1)))->_to_string/*12*/))) {
  281. r683add_position((((T873*)((T873*)a1)))->_start_position/*16*/);
  282. r683add_position((((T873*)((T873*)_n2)))->_start_position/*16*/);
  283. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_535);
  284. r683fatal_error(((T683*)(oBC364eh)),b1);
  285. }/*]*/
  286. }
  287. /*FI*/_i=(_i)+(1);
  288. }
  289. /*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  290. T0* b1=a1;
  291. int b2=_i;
  292. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  293. }/*]*/
  294. /*[IRF3.3set_rank*/((((T873*)(((T873*)a1))))->_rank)=(_i);
  295. /*]*/
  296. }
  297. void r31error(T0* a1,T0* a2){
  298. r683add_position(a1);
  299. r683error(((T683*)(oBC364eh)),a2);
  300. }
  301. /*No:FORMAL_ARG_LIST.count*/
  302. /*No:FORMAL_ARG_LIST.fatal_error*/
  303. /*No:FORMAL_ARG_LIST.flat_list*/
  304. int r33gives_permission_to_any(T33* C){
  305. int R=0;
  306. int _i=0;
  307. _i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
  308. while (!((R)||((_i)==(0)))) {
  309. R=((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i)))))->_to_string/*0*/)==((void*)(((T0*)ms1_473)));
  310. _i=(_i)-(1);
  311. }
  312. return R;
  313. }
  314. void r33merge(T33* C,T0* a1,T0* a2){
  315. T0* _a=NULL;
  316. T0* _cn=NULL;
  317. int _i=0;
  318. C->_list=r901twin(((T901*)((((T33*)((T33*)a1)))->_list/*0*/)));
  319. _a=(((T33*)((T33*)a2)))->_list/*0*/;
  320. _i=(((T901*)((T901*)_a)))->_upper/*8*/;
  321. while (!((_i)==(0))) {
  322. _cn=r901item(((T901*)_a),_i);
  323. /*IF*/if (!(r33gives_permission_to(C,_cn))) {
  324. r901add_last(((T901*)((((T33*)C))->_list/*0*/)),_cn);
  325. }
  326. /*FI*/_i=(_i)-(1);
  327. }
  328. }
  329. void r33make(T33* C,T0* a1){
  330. int _i2=0;
  331. int _i=0;
  332. C->_list=a1;
  333. _i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
  334. while (!((_i)==(0))) {
  335. _i2=r33index_of(C,r901item(((T901*)((((T33*)C))->_list/*0*/)),_i));
  336. /*IF*/if ((_i2)!=(_i)) {
  337. r683add_position((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i2)))))->_start_position/*4*/);
  338. r33warning((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i)))))->_start_position/*4*/,((T0*)ms1_33));
  339. }
  340. /*FI*/_i=(_i)-(1);
  341. }
  342. }
  343. int r33gives_permission_to(T33* C,T0* a1){
  344. int R=0;
  345. int _i=0;
  346. /*IF*/if ((r33index_of(C,a1))>(0)) {
  347. R=1;
  348. }
  349. else {
  350. _i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
  351. while (!((R)||((_i)==(0)))) {
  352. R=r451is_subclass_of(((T451*)a1),r901item(((T901*)((((T33*)C))->_list/*0*/)),_i));
  353. _i=(_i)-(1);
  354. }
  355. }
  356. /*FI*/return R;
  357. }
  358. /*No:CLASS_NAME_LIST.list*/
  359. int r33index_of(T33* C,T0* a1){
  360. int R=0;
  361. T0* _to_string=NULL;
  362. _to_string=(((T451*)((T451*)a1)))->_to_string/*0*/;
  363. R=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
  364. while (!(((R)==(0))||((_to_string)==((void*)((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),R)))))->_to_string/*0*/))))) {
  365. R=(R)-(1);
  366. }
  367. return R;
  368. }
  369. /*No:CLASS_NAME_LIST.us_any*/
  370. void r33warning(T0* a1,T0* a2){
  371. r683add_position(a1);
  372. r683warning(((T683*)(oBC364eh)),a2);
  373. }
  374. int r963id(T963* C){
  375. int R=0;
  376. R=(((T355*)((T355*)(r963run_class(C)))))->_id/*4*/;
  377. return R;
  378. }
  379. /*No:TYPE_BIT_REF.gc_set_unmarked_in*/
  380. /*No:TYPE_BIT_REF.has_creation*/
  381. /*No:TYPE_BIT_REF.is_anchored*/
  382. /*No:TYPE_BIT_REF.is_array*/
  383. /*No:TYPE_BIT_REF.fz_typedef*/
  384. /*No:TYPE_BIT_REF.fz_else*/
  385. int r963is_a(T963* C,T0* a1){
  386. int R=0;
  387. /*IF*/if (((((T963*)C))->_run_time_mark/*12*/)==((void*)(X291run_time_mark(a1)))) {
  388. R=1;
  389. }
  390. else {
  391. R=r605is_subclass_of(((T605*)(r963base_class(C))),X291base_class(a1));
  392. /*IF*/if (!(R)) {
  393. r683add_type((T0*)C,((T0*)ms71_470));
  394. r683add_type(a1,((T0*)ms67_470));
  395. }
  396. /*FI*/}
  397. /*FI*/return R;
  398. }
  399. void r963gcmt_max_in(T963* C,T0* a1){
  400. r7append(((T7*)a1),((T0*)ms55_291));
  401. r2append_in(r963id(C),a1);
  402. }
  403. /*No:TYPE_BIT_REF.fz_to_t*/
  404. /*No:TYPE_BIT_REF.c_initialize_in*/
  405. /*No:TYPE_BIT_REF.fz_gc_sweep*/
  406. /*No:TYPE_BIT_REF.c_type_for_argument_in*/
  407. void r963gc_call_new_in(T963* C,T0* a1){
  408. r7append(((T7*)a1),((T0*)ms115_470));
  409. r2append_in(r963id(C),a1);
  410. r7extend(((T7*)a1),'\50');
  411. r7extend(((T7*)a1),'\51');
  412. }
  413. int r963space_for_pointer(void){
  414. int R=0;
  415. void* _p=0;
  416. R=sizeof(T8);
  417. return R;
  418. }
  419. /*No:TYPE_BIT_REF.is_pointer*/
  420. /*No:TYPE_BIT_REF.run_type*/
  421. void r963gc_align_mark_in(T963* C,T0* a1){
  422. r7append(((T7*)a1),((T0*)ms58_291));
  423. r2append_in(r963id(C),a1);
  424. }
  425. /*No:TYPE_BIT_REF.is_dummy_expanded*/
  426. void r963gcmt_used_in(T963* C,T0* a1){
  427. r7append(((T7*)a1),((T0*)ms56_291));
  428. r2append_in(r963id(C),a1);
  429. }
  430. /*No:TYPE_BIT_REF.is_string*/
  431. /*No:TYPE_BIT_REF.space_for_variable*/
  432. /*No:TYPE_BIT_REF.is_like_feature*/
  433. /*No:TYPE_BIT_REF.fz_t0_star*/
  434. /*No:TYPE_BIT_REF.is_like_current*/
  435. void r963make(T963* C,T0* a1){
  436. C->_type_bit=a1;
  437. C->_run_time_mark=((T0*)ms1_963);
  438. r2append_in(X609nb((((T963*)C))->_type_bit/*4*/),(((T963*)C))->_run_time_mark/*12*/);
  439. r7append(((T7*)((((T963*)C))->_run_time_mark/*12*/)),((T0*)ms2_963));
  440. C->_run_time_mark=r902item((((T963*)C))->_run_time_mark/*12*/);
  441. C->_written_mark=(((T963*)C))->_run_time_mark/*12*/;
  442. }
  443. /*No:TYPE_BIT_REF.fz_gc*/
  444. T0* r963type_any(void){
  445. if (fBC364type_any==0){
  446. T0* R=NULL;
  447. fBC364type_any=1;
  448. {T669*n=malloc(sizeof(*n));
  449. *n=M669;
  450. r669make(n,NULL);
  451. R=(T0*)n;
  452. }
  453. oBC364type_any=R;}
  454. return oBC364type_any;}
  455. /*No:TYPE_BIT_REF.gc_if_marked_in*/
  456. /*No:TYPE_BIT_REF.fz_gc_sweep_pool*/
  457. /*No:TYPE_BIT_REF.start_position*/
  458. void r963mapping_cast(T963* C){
  459. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  460. /*]*/
  461. r7extend(((T7*)(oBC291tmp_string)),'\50');
  462. r963c_type_for_target_in(C,oBC291tmp_string);
  463. r7extend(((T7*)(oBC291tmp_string)),'\51');
  464. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  465. /*]*/
  466. }
  467. void r963c_type_for_target_in(T963* C,T0* a1){
  468. r7extend(((T7*)a1),'T');
  469. r2append_in(r963id(C),a1);
  470. r7extend(((T7*)a1),'\52');
  471. }
  472. /*No:TYPE_BIT_REF.fz_printf*/
  473. void r963gc_free_in(T963* C,T0* a1){
  474. r7append(((T7*)a1),((T0*)ms57_291));
  475. r2append_in(r963id(C),a1);
  476. }
  477. /*No:TYPE_BIT_REF.gc_set_marked_in*/
  478. /*No:TYPE_BIT_REF.fz_gc_mark*/
  479. /*No:TYPE_BIT_REF.fz_inako*/
  480. void r963standard_gc_initialize(T963* C){
  481. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  482. /*]*/
  483. r963gcmt_in(C,oBC291tmp_string);
  484. r7append(((T7*)(oBC291tmp_string)),((T0*)ms53_291));
  485. r963gcmt_max_in(C,oBC291tmp_string);
  486. r7append(((T7*)(oBC291tmp_string)),((T0*)ms150_470));
  487. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  488. /*]*/
  489. }
  490. /*No:TYPE_BIT_REF.gc_initialize*/
  491. /*No:TYPE_BIT_REF.fz_00*/
  492. /*No:TYPE_BIT_REF.is_character*/
  493. /*No:TYPE_BIT_REF.is_user_expanded*/
  494. /*No:TYPE_BIT_REF.written_mark*/
  495. /*No:TYPE_BIT_REF.is_run_type*/
  496. /*No:TYPE_BIT_REF.to_runnable*/
  497. /*No:TYPE_BIT_REF.fz_c_if_eq_null*/
  498. /*No:TYPE_BIT_REF.fz_10*/
  499. void r963c_type_for_external_in(T0* a1){
  500. /*IF*/{/*AT*/r7append(((T7*)a1),((T0*)ms133_470));
  501. r7extend(((T7*)a1),'\52');
  502. }
  503. /*FI*/}
  504. T0* r963generic_list(T963* C){
  505. T0* R=NULL;
  506. r963fatal_error_generic_list(C);
  507. return R;
  508. }
  509. /*No:TYPE_BIT_REF.is_formal_generic*/
  510. /*No:TYPE_BIT_REF.fz_null*/
  511. void r963demangling_in(T963* C,T0* a1){
  512. /*IF*/{/*AT*/r7extend(((T7*)a1),'R');
  513. }
  514. /*FI*/r7extend(((T7*)a1),'\40');
  515. r7append(((T7*)a1),(((T963*)C))->_run_time_mark/*12*/);
  516. }
  517. /*No:TYPE_BIT_REF.is_real*/
  518. void r963gc_info_nb_in(T963* C,T0* a1){
  519. r7append(((T7*)a1),((T0*)ms59_291));
  520. r2append_in(r963id(C),a1);
  521. }
  522. /*No:TYPE_BIT_REF.fz_14*/
  523. /*No:TYPE_BIT_REF.is_bit*/
  524. void r963fatal_error_generic_list(T963* C){
  525. r683add_type((T0*)C,((T0*)ms12_291));
  526. r683print_as_fatal_error(((T683*)(oBC364eh)));
  527. }
  528. /*No:TYPE_BIT_REF.fz_new*/
  529. /*No:TYPE_BIT_REF.fz_c_void_args*/
  530. T0* r963smallest_ancestor(T963* C,T0* a1){
  531. T0* R=NULL;
  532. /*IF*/if (((((T963*)C))->_run_time_mark/*12*/)==((void*)(X291run_time_mark(a1)))) {
  533. R=(T0*)C;
  534. }
  535. else {
  536. R=r963type_any();
  537. }
  538. /*FI*/return R;
  539. }
  540. /*No:TYPE_BIT_REF.fz_16*/
  541. void r963standard_gc_info_in(T963* C,T0* a1){
  542. r7append(((T7*)a1),((T0*)ms119_470));
  543. r7extend(((T7*)a1),'\50');
  544. r7extend(((T7*)a1),'\42');
  545. r7append(((T7*)a1),(((T963*)C))->_run_time_mark/*12*/);
  546. r7append(((T7*)a1),((T0*)ms144_470));
  547. r963gc_info_nb_in(C,a1);
  548. r7append(((T7*)a1),((T0*)ms148_470));
  549. r7append(((T7*)a1),((T0*)ms119_470));
  550. r7extend(((T7*)a1),'\50');
  551. r7extend(((T7*)a1),'\42');
  552. r963gcmt_used_in(C,a1);
  553. r7append(((T7*)a1),((T0*)ms144_470));
  554. r963gcmt_used_in(C,a1);
  555. r7append(((T7*)a1),((T0*)ms148_470));
  556. r7append(((T7*)a1),((T0*)ms119_470));
  557. r7extend(((T7*)a1),'\50');
  558. r7extend(((T7*)a1),'\42');
  559. r963gcmt_max_in(C,a1);
  560. r7append(((T7*)a1),((T0*)ms144_470));
  561. r963gcmt_max_in(C,a1);
  562. r7append(((T7*)a1),((T0*)ms148_470));
  563. }
  564. /*No:TYPE_BIT_REF.is_boolean*/
  565. void r963standard_c_typedef(T963* C){
  566. int _mem_id=0;
  567. _mem_id=r963id(C);
  568. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  569. /*]*/
  570. /*IF*/{/*AT*/r7append(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
  571. r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  572. r7extend(((T7*)(oBC291tmp_string)),'S');
  573. r2append_in(_mem_id,oBC291tmp_string);
  574. r7extend(((T7*)(oBC291tmp_string)),'\40');
  575. r7extend(((T7*)(oBC291tmp_string)),'T');
  576. r2append_in(_mem_id,oBC291tmp_string);
  577. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  578. }
  579. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  580. /*]*/
  581. }
  582. /*No:TYPE_BIT_REF.is_double*/
  583. T0* r963run_class(T963* C){
  584. T0* R=NULL;
  585. R=r604run_class(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
  586. return R;
  587. }
  588. void r963gcmt_in(T963* C,T0* a1){
  589. r7append(((T7*)a1),((T0*)ms54_291));
  590. r2append_in(r963id(C),a1);
  591. }
  592. /*No:TYPE_BIT_REF.c_initialize*/
  593. /*No:TYPE_BIT_REF.run_time_mark*/
  594. void r963cast_to_ref(T963* C){
  595. r963cast_to_ref(((T963*)(/*(IRF4.4run_type*/((T0*)(C))/*)*/)));
  596. }
  597. void r963gc_mark_in(T963* C,T0* a1){
  598. r7append(((T7*)a1),((T0*)ms107_470));
  599. r2append_in(r963id(C),a1);
  600. }
  601. int r963is_a_in(T963* C,T0* a1,T0* a2){
  602. int R=0;
  603. T0* _ct=NULL;
  604. T0* _t2=NULL;
  605. T0* _t1=NULL;
  606. /*IF*/if (((((T963*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
  607. R=1;
  608. }
  609. else {
  610. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  611. _t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
  612. _t2=X291to_runnable(a1,_ct);
  613. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  614. R=1;
  615. }
  616. else {
  617. R=X291is_a(_t1,_t2);
  618. }
  619. /*FI*/}
  620. /*FI*/return R;
  621. }
  622. T0* r963look_up_for(T963* C,T0* a1,T0* a2){
  623. T0* R=NULL;
  624. R=r605look_up_for(((T605*)(r963base_class(C))),a1,a2);
  625. return R;
  626. }
  627. void r963c_header_pass1(T963* C){
  628. r963standard_c_typedef(C);
  629. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  630. r7extend(((T7*)(oBC291tmp_string)),'S');
  631. r2append_in(r963id(C),oBC291tmp_string);
  632. r7append(((T7*)(oBC291tmp_string)),((T0*)ms3_963));
  633. r2append_in(X609id((((T963*)C))->_type_bit/*4*/),oBC291tmp_string);
  634. r7append(((T7*)(oBC291tmp_string)),((T0*)ms4_963));
  635. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  636. /*]*/
  637. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms5_963));
  638. r2append_in(r963id(C),oBC291tmp_string);
  639. r7extend(((T7*)(oBC291tmp_string)),'\50');
  640. r7extend(((T7*)(oBC291tmp_string)),'T');
  641. r2append_in(X609id((((T963*)C))->_type_bit/*4*/),oBC291tmp_string);
  642. r7append(((T7*)(oBC291tmp_string)),((T0*)ms6_963));
  643. r324put_c_heading(((T324*)(oBC364cpp)),oBC291tmp_string);
  644. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  645. /*]*/
  646. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  647. /*]*/
  648. r7extend(((T7*)(oBC291tmp_string)),'T');
  649. r2append_in(r963id(C),oBC291tmp_string);
  650. r7append(((T7*)(oBC291tmp_string)),((T0*)ms7_963));
  651. r2append_in(r963id(C),oBC291tmp_string);
  652. r7append(((T7*)(oBC291tmp_string)),((T0*)ms8_963));
  653. r2append_in(r963id(C),oBC291tmp_string);
  654. r7append(((T7*)(oBC291tmp_string)),((T0*)ms9_963));
  655. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  656. /*]*/
  657. r324swap_on_h(((T324*)(oBC364cpp)));
  658. }
  659. /*No:TYPE_BIT_REF.c_type_for_result_in*/
  660. /*No:TYPE_BIT_REF.expanded_initializer*/
  661. /*No:TYPE_BIT_REF.fz_int*/
  662. void r963gc_declare_h_in(T963* C,T0* a1){
  663. r7append(((T7*)a1),((T0*)ms105_470));
  664. r2append_in(r963id(C),a1);
  665. r7append(((T7*)a1),((T0*)ms60_291));
  666. r2append_in(r963id(C),a1);
  667. r7append(((T7*)a1),((T0*)ms61_291));
  668. }
  669. void r963standard_gc_define1(T963* C){
  670. int _rcid=0;
  671. T0* _rc=NULL;
  672. _rc=r963run_class(C);
  673. _rcid=(((T355*)((T355*)_rc)))->_id/*4*/;
  674. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
  675. r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  676. r7extend(((T7*)(oBC291tmp_string)),'B');
  677. r2append_in(_rcid,oBC291tmp_string);
  678. r7extend(((T7*)(oBC291tmp_string)),'\40');
  679. r7append(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
  680. r2append_in(_rcid,oBC291tmp_string);
  681. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  682. r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  683. r7extend(((T7*)(oBC291tmp_string)),'B');
  684. r2append_in(_rcid,oBC291tmp_string);
  685. r7append(((T7*)(oBC291tmp_string)),((T0*)ms13_291));
  686. r2append_in(_rcid,oBC291tmp_string);
  687. r7append(((T7*)(oBC291tmp_string)),((T0*)ms14_291));
  688. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  689. /*]*/
  690. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
  691. r2append_in(_rcid,oBC291tmp_string);
  692. r7extend(((T7*)(oBC291tmp_string)),'\52');
  693. r7extend(((T7*)(oBC291tmp_string)),'\52');
  694. r963gcmt_in(C,oBC291tmp_string);
  695. r324put_extern1(((T324*)(oBC364cpp)),oBC291tmp_string);
  696. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  697. r7extend(((T7*)(oBC291tmp_string)),'\40');
  698. r963gcmt_used_in(C,oBC291tmp_string);
  699. r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'0');
  700. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  701. r7extend(((T7*)(oBC291tmp_string)),'\40');
  702. r963gcmt_max_in(C,oBC291tmp_string);
  703. r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'8');
  704. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
  705. r2append_in(_rcid,oBC291tmp_string);
  706. r7extend(((T7*)(oBC291tmp_string)),'\52');
  707. r963gc_free_in(C,oBC291tmp_string);
  708. r324put_extern5(((T324*)(oBC364cpp)),oBC291tmp_string,((T0*)ms117_470));
  709. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
  710. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  711. r7extend(((T7*)(oBC291tmp_string)),'\40');
  712. r963gc_info_nb_in(C,oBC291tmp_string);
  713. r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'0');
  714. }
  715. /*FI*/}
  716. /*No:TYPE_BIT_REF.fz_void*/
  717. /*No:TYPE_BIT_REF.fz_dot*/
  718. /*No:TYPE_BIT_REF.is_generic*/
  719. /*No:TYPE_BIT_REF.used_as_reference*/
  720. /*No:TYPE_BIT_REF.us_bit_n_ref*/
  721. /*No:TYPE_BIT_REF.c_header_pass2*/
  722. /*No:TYPE_BIT_REF.gc_define1*/
  723. /*No:TYPE_BIT_REF.need_c_struct*/
  724. /*No:TYPE_BIT_REF.type_bit*/
  725. /*No:TYPE_BIT_REF.gc_info_in*/
  726. /*No:TYPE_BIT_REF.is_reference*/
  727. T0* r963base_class(T963* C){
  728. T0* R=NULL;
  729. T0* _bcn=NULL;
  730. _bcn=r963base_class_name();
  731. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  732. R=r451base_class(((T451*)_bcn));
  733. }
  734. else {
  735. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  736. r7append(((T7*)(oBC683explanation)),b1);
  737. }/*]*/
  738. r683add_type((T0*)C,((T0*)ms67_470));
  739. r683print_as_fatal_error(((T683*)(oBC364eh)));
  740. }
  741. /*FI*/return R;
  742. }
  743. /*No:TYPE_BIT_REF.call_gc_sweep_in*/
  744. /*No:TYPE_BIT_REF.gc_define2*/
  745. /*No:TYPE_BIT_REF.need_gc_mark_function*/
  746. void r963standard_gc_define2(T963* C){
  747. int _rcid=0;
  748. T0* _rc=NULL;
  749. _rc=r963run_class(C);
  750. _rcid=(((T355*)((T355*)_rc)))->_id/*4*/;
  751. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  752. r7extend(((T7*)(oBC291header)),'\40');
  753. r7append(((T7*)(oBC291header)),((T0*)ms109_470));
  754. r2append_in(_rcid,oBC291header);
  755. r7extend(((T7*)(oBC291header)),'\50');
  756. r7append(((T7*)(oBC291header)),((T0*)ms105_470));
  757. r2append_in(_rcid,oBC291header);
  758. r7extend(((T7*)(oBC291header)),'\52');
  759. r7extend(((T7*)(oBC291header)),'b');
  760. r7extend(((T7*)(oBC291header)),'\54');
  761. r7append(((T7*)(oBC291header)),((T0*)ms105_470));
  762. r2append_in(_rcid,oBC291header);
  763. r7extend(((T7*)(oBC291header)),'\52');
  764. r7extend(((T7*)(oBC291header)),'h');
  765. r7extend(((T7*)(oBC291header)),'\51');
  766. r7copy(((T7*)(oBC291body)),((T0*)ms15_291));
  767. /*[IRF3.6gc_if_marked_in*/{T0* b1=oBC291body;
  768. r7append(((T7*)b1),((T0*)ms64_291));
  769. }/*]*/
  770. /*[IRF3.6gc_set_unmarked_in*/{T0* b1=oBC291body;
  771. r7append(((T7*)b1),((T0*)ms63_291));
  772. }/*]*/
  773. r7extend(((T7*)(oBC291body)),'\175');
  774. r7append(((T7*)(oBC291body)),((T0*)ms10_470));
  775. r7extend(((T7*)(oBC291body)),'\n');
  776. /*[IRF3.6gc_if_unmarked_in*/{T0* b1=oBC291body;
  777. r7append(((T7*)b1),((T0*)ms65_291));
  778. }/*]*/
  779. r7append(((T7*)(oBC291body)),((T0*)ms16_291));
  780. r963gc_free_in(C,oBC291body);
  781. r7append(((T7*)(oBC291body)),((T0*)ms17_291));
  782. r963gc_free_in(C,oBC291body);
  783. r7append(((T7*)(oBC291body)),((T0*)ms18_291));
  784. /*IF*/{/*AT*/r7append(((T7*)(oBC291body)),((T0*)ms19_291));
  785. r2append_in(_rcid,oBC291body);
  786. r7append(((T7*)(oBC291body)),((T0*)ms134_470));
  787. }
  788. /*FI*/r7append(((T7*)(oBC291body)),((T0*)ms20_291));
  789. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  790. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  791. r7extend(((T7*)(oBC291header)),'\40');
  792. r7append(((T7*)(oBC291header)),((T0*)ms108_470));
  793. r2append_in(_rcid,oBC291header);
  794. r7append(((T7*)(oBC291header)),((T0*)ms97_470));
  795. r7copy(((T7*)(oBC291body)),((T0*)ms21_291));
  796. r2append_in(_rcid,oBC291body);
  797. r7append(((T7*)(oBC291body)),((T0*)ms22_291));
  798. r963gcmt_in(C,oBC291body);
  799. r7extend(((T7*)(oBC291body)),'\53');
  800. r963gcmt_used_in(C,oBC291body);
  801. r7append(((T7*)(oBC291body)),((T0*)ms23_291));
  802. r963gcmt_used_in(C,oBC291body);
  803. r7append(((T7*)(oBC291body)),((T0*)ms24_291));
  804. r7append(((T7*)(oBC291body)),((T0*)ms25_291));
  805. r2append_in(_rcid,oBC291body);
  806. r7append(((T7*)(oBC291body)),((T0*)ms26_291));
  807. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  808. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  809. r7extend(((T7*)(oBC291header)),'\40');
  810. r963gc_mark_in(C,oBC291header);
  811. r7extend(((T7*)(oBC291header)),'\50');
  812. r7extend(((T7*)(oBC291header)),'T');
  813. r2append_in(_rcid,oBC291header);
  814. r7extend(((T7*)(oBC291header)),'\52');
  815. r7extend(((T7*)(oBC291header)),'o');
  816. r7extend(((T7*)(oBC291header)),'\51');
  817. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291body)))))->_count)=(0);
  818. /*]*/
  819. r963gc_declare_h_in(C,oBC291body);
  820. /*[IRF3.6gc_if_unmarked_in*/{T0* b1=oBC291body;
  821. r7append(((T7*)b1),((T0*)ms65_291));
  822. }/*]*/
  823. /*[IRF3.6gc_set_marked_in*/{T0* b1=oBC291body;
  824. r7append(((T7*)b1),((T0*)ms62_291));
  825. }/*]*/
  826. /*IF*/if (r355gc_mark_to_follow(((T355*)_rc))) {
  827. r355gc_mark_in(((T355*)_rc),oBC291body);
  828. }
  829. /*FI*/r7extend(((T7*)(oBC291body)),'\175');
  830. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  831. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  832. r7extend(((T7*)(oBC291header)),'\40');
  833. r963gc_align_mark_in(C,oBC291header);
  834. r7extend(((T7*)(oBC291header)),'\50');
  835. r7extend(((T7*)(oBC291header)),'T');
  836. r2append_in(_rcid,oBC291header);
  837. r7extend(((T7*)(oBC291header)),'\52');
  838. r7extend(((T7*)(oBC291header)),'o');
  839. r7extend(((T7*)(oBC291header)),'\54');
  840. r7append(((T7*)(oBC291header)),((T0*)ms105_470));
  841. r2append_in(_rcid,oBC291header);
  842. r7extend(((T7*)(oBC291header)),'\52');
  843. r7extend(((T7*)(oBC291header)),'B');
  844. r7extend(((T7*)(oBC291header)),'\51');
  845. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291body)))))->_count)=(0);
  846. /*]*/
  847. r963gc_declare_h_in(C,oBC291body);
  848. r7append(((T7*)(oBC291body)),((T0*)ms27_291));
  849. r963gc_mark_in(C,oBC291body);
  850. r7append(((T7*)(oBC291body)),((T0*)ms28_291));
  851. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  852. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  853. r7extend(((T7*)(oBC291header)),'\40');
  854. r7append(((T7*)(oBC291header)),((T0*)ms116_470));
  855. r2append_in(_rcid,oBC291header);
  856. r7append(((T7*)(oBC291header)),((T0*)ms97_470));
  857. r7copy(((T7*)(oBC291body)),((T0*)ms29_291));
  858. r2append_in(_rcid,oBC291body);
  859. r7append(((T7*)(oBC291body)),((T0*)ms30_291));
  860. r963gcmt_used_in(C,oBC291body);
  861. r7append(((T7*)(oBC291body)),((T0*)ms31_291));
  862. /*IF*/if (r355is_tagged(((T355*)_rc))) {
  863. r7append(((T7*)(oBC291body)),((T0*)ms32_291));
  864. r2append_in(_rcid,oBC291body);
  865. r7append(((T7*)(oBC291body)),((T0*)ms134_470));
  866. }
  867. /*FI*/r7append(((T7*)(oBC291body)),((T0*)ms33_291));
  868. r963gcmt_max_in(C,oBC291body);
  869. r7append(((T7*)(oBC291body)),((T0*)ms34_291));
  870. r963gcmt_max_in(C,oBC291body);
  871. r7append(((T7*)(oBC291body)),((T0*)ms35_291));
  872. r963gcmt_in(C,oBC291body);
  873. r7append(((T7*)(oBC291body)),((T0*)ms36_291));
  874. r963gcmt_in(C,oBC291body);
  875. r7append(((T7*)(oBC291body)),((T0*)ms37_291));
  876. r963gcmt_max_in(C,oBC291body);
  877. r7append(((T7*)(oBC291body)),((T0*)ms38_291));
  878. r963gcmt_in(C,oBC291body);
  879. r7append(((T7*)(oBC291body)),((T0*)ms39_291));
  880. r963gc_free_in(C,oBC291body);
  881. r7append(((T7*)(oBC291body)),((T0*)ms40_291));
  882. r7append(((T7*)(oBC291body)),((T0*)ms41_291));
  883. r963gc_align_mark_in(C,oBC291body);
  884. r7append(((T7*)(oBC291body)),((T0*)ms42_291));
  885. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  886. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291header)))))->_count)=(0);
  887. /*]*/
  888. r7extend(((T7*)(oBC291header)),'T');
  889. r2append_in(_rcid,oBC291header);
  890. r7extend(((T7*)(oBC291header)),'\52');
  891. r7append(((T7*)(oBC291header)),((T0*)ms115_470));
  892. r2append_in(_rcid,oBC291header);
  893. r7append(((T7*)(oBC291header)),((T0*)ms97_470));
  894. r7copy(((T7*)(oBC291body)),((T0*)ms105_470));
  895. r2append_in(_rcid,oBC291body);
  896. r7append(((T7*)(oBC291body)),((T0*)ms43_291));
  897. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
  898. r963gc_info_nb_in(C,oBC291body);
  899. r7append(((T7*)(oBC291body)),((T0*)ms44_291));
  900. }
  901. /*FI*/r7append(((T7*)(oBC291body)),((T0*)ms45_291));
  902. r963gc_free_in(C,oBC291body);
  903. r7append(((T7*)(oBC291body)),((T0*)ms46_291));
  904. r2append_in(r548threshold_start(_rcid),oBC291body);
  905. r7extend(((T7*)(oBC291body)),'\74');
  906. r963gcmt_used_in(C,oBC291body);
  907. r7append(((T7*)(oBC291body)),((T0*)ms47_291));
  908. r7append(((T7*)(oBC291body)),((T0*)ms89_470));
  909. r963gc_free_in(C,oBC291body);
  910. r7append(((T7*)(oBC291body)),((T0*)ms48_291));
  911. r2append_in(_rcid,oBC291body);
  912. r7append(((T7*)(oBC291body)),((T0*)ms49_291));
  913. r963gc_free_in(C,oBC291body);
  914. r7append(((T7*)(oBC291body)),((T0*)ms50_291));
  915. r963gc_free_in(C,oBC291body);
  916. r7append(((T7*)(oBC291body)),((T0*)ms51_291));
  917. /*[IRF3.6gc_set_unmarked_in*/{T0* b1=oBC291body;
  918. r7append(((T7*)b1),((T0*)ms63_291));
  919. }/*]*/
  920. r7append(((T7*)(oBC291body)),((T0*)ms52_291));
  921. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  922. }
  923. /*No:TYPE_BIT_REF.is_any*/
  924. void r963to_reference(T963* C){
  925. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms130_470));
  926. /*]*/
  927. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r963id(C));
  928. /*]*/
  929. }
  930. /*No:TYPE_BIT_REF.c_header_pass3*/
  931. /*No:TYPE_BIT_REF.fz_new_pool*/
  932. int fBC963base_class_name=0;
  933. T0*oBC963base_class_name=NULL;
  934. T0* r963base_class_name(void){
  935. if (fBC963base_class_name==0){
  936. T0* R=NULL;
  937. fBC963base_class_name=1;
  938. {T451*n=malloc(sizeof(*n));
  939. *n=M451;
  940. r451make(n,((T0*)ms5_473),NULL);
  941. R=(T0*)n;
  942. }
  943. oBC963base_class_name=R;}
  944. return oBC963base_class_name;}
  945. /*No:TYPE_BIT_REF.is_expanded*/
  946. void r963standard_call_gc_sweep_in(T963* C,T0* a1){
  947. r7append(((T7*)a1),((T0*)ms108_470));
  948. r2append_in(r963id(C),a1);
  949. r7extend(((T7*)a1),'\50');
  950. r7extend(((T7*)a1),'\51');
  951. r7append(((T7*)a1),((T0*)ms134_470));
  952. }
  953. /*No:TYPE_BIT_REF.gc_if_unmarked_in*/
  954. /*No:TYPE_BIT_REF.is_basic_eiffel_expanded*/
  955. /*No:TYPE_BIT_REF.is_none*/
  956. /*No:TYPE_BIT_REF.to_expanded*/
  957. /*No:TYPE_BIT_REF.is_integer*/
  958. /*No:TYPE_BIT_REF.c_header_pass4*/
  959. /*No:TYPE_BIT_REF.fz_struct*/
  960. /*No:TYPE_BOOLEAN.id*/
  961. int r707has_creation(T707* C,T0* a1){
  962. int R=0;
  963. r683add_position(X776start_position(a1));
  964. r707error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T707*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  965. return R;
  966. }
  967. /*No:TYPE_BOOLEAN.is_anchored*/
  968. /*No:TYPE_BOOLEAN.is_array*/
  969. /*No:TYPE_BOOLEAN.fz_typedef*/
  970. int r707is_a(T707* C,T0* a1){
  971. int R=0;
  972. /*IF*/if (X291is_boolean(a1)) {
  973. R=1;
  974. }
  975. else {
  976. R=r605is_subclass_of(((T605*)(r707base_class(C))),X291base_class(a1));
  977. /*IF*/if (R) {
  978. r707used_as_reference();
  979. }
  980. /*FI*/}
  981. /*FI*//*IF*/if (!(R)) {
  982. r683add_type((T0*)C,((T0*)ms71_470));
  983. r683add_type(a1,((T0*)ms67_470));
  984. }
  985. /*FI*/return R;
  986. }
  987. /*No:TYPE_BOOLEAN.c_initialize_in*/
  988. /*No:TYPE_BOOLEAN.c_type_for_argument_in*/
  989. void r707gc_call_new_in(T0* a1){
  990. r7append(((T7*)a1),((T0*)ms115_470));
  991. r2append_in(6,a1);
  992. r7extend(((T7*)a1),'\50');
  993. r7extend(((T7*)a1),'\51');
  994. }
  995. /*No:TYPE_BOOLEAN.run_type*/
  996. /*No:TYPE_BOOLEAN.is_pointer*/
  997. /*No:TYPE_BOOLEAN.is_dummy_expanded*/
  998. /*No:TYPE_BOOLEAN.is_string*/
  999. int r707space_for_variable(void){
  1000. int R=0;
  1001. R=sizeof(T6);
  1002. return R;
  1003. }
  1004. /*No:TYPE_BOOLEAN.is_like_feature*/
  1005. /*No:TYPE_BOOLEAN.is_like_current*/
  1006. void r707make(T707* C,T0* a1){
  1007. {T451*n=malloc(sizeof(*n));
  1008. *n=M451;
  1009. r451make(n,((T0*)ms6_473),a1);
  1010. C->_base_class_name=(T0*)n;
  1011. }
  1012. }
  1013. /*No:TYPE_BOOLEAN.nb_errors*/
  1014. /*No:TYPE_BOOLEAN.us_item*/
  1015. void r707load_ref(T0* a1){
  1016. T0* _rf=NULL;
  1017. T0* _rc=NULL;
  1018. T0* _cn=NULL;
  1019. {T451*n=malloc(sizeof(*n));
  1020. *n=M451;
  1021. r451make(n,a1,NULL);
  1022. _cn=(T0*)n;
  1023. }
  1024. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  1025. r355set_at_run_time(((T355*)_rc));
  1026. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  1027. }
  1028. int fBC707check_type=0;
  1029. void r707check_type(T707* C){
  1030. if (fBC707check_type==0){
  1031. T0* _rc=NULL;
  1032. T0* _bc=NULL;
  1033. fBC707check_type=1;
  1034. _bc=r707base_class(C);
  1035. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1036. _rc=r707run_class(C);
  1037. }
  1038. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1039. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  1040. r707error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T707*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_707));
  1041. }
  1042. /*FI*/}
  1043. /*FI*/}}
  1044. /*No:TYPE_BOOLEAN.mapping_cast*/
  1045. /*No:TYPE_BOOLEAN.start_position*/
  1046. /*No:TYPE_BOOLEAN.c_type_for_target_in*/
  1047. /*No:TYPE_BOOLEAN.fz_gc_mark*/
  1048. /*No:TYPE_BOOLEAN.fz_inako*/
  1049. /*No:TYPE_BOOLEAN.gc_initialize*/
  1050. /*No:TYPE_BOOLEAN.fz_00*/
  1051. /*No:TYPE_BOOLEAN.is_character*/
  1052. /*No:TYPE_BOOLEAN.is_user_expanded*/
  1053. T0* r707written_mark(void){
  1054. T0* R=NULL;
  1055. R=((T0*)ms6_473);
  1056. return R;
  1057. }
  1058. /*No:TYPE_BOOLEAN.is_run_type*/
  1059. T0* r707to_runnable(T707* C,T0* a1){
  1060. T0* R=NULL;
  1061. R=(T0*)C;
  1062. r707check_type(C);
  1063. return R;
  1064. }
  1065. void r707c_type_for_external_in(T0* a1){
  1066. /*IF*//*AF*//*AE*/
  1067. /*[IRF3.6c_type_for_result_in*/{T0* b1=a1;
  1068. /*[IRF3.6c_type_for_argument_in*/{T0* c1=b1;
  1069. r7append(((T7*)c1),((T0*)ms111_470));
  1070. }/*]*/
  1071. }/*]*/
  1072. /*FI*/}
  1073. T0* r707generic_list(T707* C){
  1074. T0* R=NULL;
  1075. r707fatal_error_generic_list(C);
  1076. return R;
  1077. }
  1078. /*No:TYPE_BOOLEAN.is_formal_generic*/
  1079. void r707demangling_in(T0* a1){
  1080. /*IF*//*AF*//*AE*/
  1081. r7extend(((T7*)a1),'E');
  1082. /*FI*/r7extend(((T7*)a1),'\40');
  1083. r7append(((T7*)a1),r707run_time_mark());
  1084. }
  1085. /*No:TYPE_BOOLEAN.is_real*/
  1086. /*No:TYPE_BOOLEAN.is_bit*/
  1087. void r707fatal_error_generic_list(T707* C){
  1088. r683add_type((T0*)C,((T0*)ms12_291));
  1089. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1090. }
  1091. int fBC364type_boolean_ref=0;
  1092. T0*oBC364type_boolean_ref=NULL;
  1093. T0* r707type_boolean_ref(void){
  1094. if (fBC364type_boolean_ref==0){
  1095. T0* R=NULL;
  1096. T0* _boolean_ref=NULL;
  1097. fBC364type_boolean_ref=1;
  1098. {T451*n=malloc(sizeof(*n));
  1099. *n=M451;
  1100. r451make(n,((T0*)ms7_473),NULL);
  1101. _boolean_ref=(T0*)n;
  1102. }
  1103. {T657*n=malloc(sizeof(*n));
  1104. *n=M657;
  1105. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_boolean_ref);
  1106. /*]*/
  1107. R=(T0*)n;
  1108. }
  1109. oBC364type_boolean_ref=R;}
  1110. return oBC364type_boolean_ref;}
  1111. /*No:TYPE_BOOLEAN.fz_new*/
  1112. T0* r707smallest_ancestor(T707* C,T0* a1){
  1113. T0* R=NULL;
  1114. T0* _rto=NULL;
  1115. _rto=X291run_type(a1);
  1116. /*IF*/if (X291is_boolean(_rto)) {
  1117. R=(T0*)C;
  1118. }
  1119. else {
  1120. R=r657smallest_ancestor(((T657*)(r707type_boolean_ref())),_rto);
  1121. }
  1122. /*FI*/return R;
  1123. }
  1124. /*No:TYPE_BOOLEAN.is_boolean*/
  1125. /*No:TYPE_BOOLEAN.is_double*/
  1126. T0* r707run_class(T707* C){
  1127. T0* R=NULL;
  1128. R=r604run_class((T0*)C);
  1129. return R;
  1130. }
  1131. T0* r707run_time_mark(void){
  1132. T0* R=NULL;
  1133. R=((T0*)ms6_473);
  1134. return R;
  1135. }
  1136. /*No:TYPE_BOOLEAN.c_initialize*/
  1137. /*No:TYPE_BOOLEAN.cast_to_ref*/
  1138. void r707gc_mark_in(T0* a1){
  1139. r7append(((T7*)a1),((T0*)ms107_470));
  1140. r2append_in(6,a1);
  1141. }
  1142. int r707is_a_in(T707* C,T0* a1,T0* a2){
  1143. int R=0;
  1144. T0* _ct=NULL;
  1145. T0* _t2=NULL;
  1146. T0* _t1=NULL;
  1147. /*IF*/if ((r707written_mark())==((void*)(X291written_mark(a1)))) {
  1148. R=1;
  1149. }
  1150. else {
  1151. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1152. _t1=r707to_runnable(C,_ct);
  1153. _t2=X291to_runnable(a1,_ct);
  1154. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1155. R=1;
  1156. }
  1157. else {
  1158. R=X291is_a(_t1,_t2);
  1159. }
  1160. /*FI*/}
  1161. /*FI*/return R;
  1162. }
  1163. T0* r707look_up_for(T707* C,T0* a1,T0* a2){
  1164. T0* R=NULL;
  1165. R=r605look_up_for(((T605*)(r707base_class(C))),a1,a2);
  1166. return R;
  1167. }
  1168. /*No:TYPE_BOOLEAN.c_header_pass1*/
  1169. /*No:TYPE_BOOLEAN.c_type_for_result_in*/
  1170. /*No:TYPE_BOOLEAN.us_boolean*/
  1171. /*No:TYPE_BOOLEAN.expanded_initializer*/
  1172. /*No:TYPE_BOOLEAN.fz_int*/
  1173. /*No:TYPE_BOOLEAN.fz_void*/
  1174. /*No:TYPE_BOOLEAN.fz_dot*/
  1175. /*No:TYPE_BOOLEAN.is_generic*/
  1176. int fBC707used_as_reference=0;
  1177. void r707used_as_reference(void){
  1178. if (fBC707used_as_reference==0){
  1179. fBC707used_as_reference=1;
  1180. r707load_ref(((T0*)ms7_473));
  1181. }}
  1182. /*No:TYPE_BOOLEAN.c_header_pass2*/
  1183. /*No:TYPE_BOOLEAN.gc_define1*/
  1184. /*No:TYPE_BOOLEAN.need_c_struct*/
  1185. /*No:TYPE_BOOLEAN.is_reference*/
  1186. /*No:TYPE_BOOLEAN.gc_info_in*/
  1187. void r707error(T0* a1,T0* a2){
  1188. r683add_position(a1);
  1189. r683error(((T683*)(oBC364eh)),a2);
  1190. }
  1191. T0* r707base_class(T707* C){
  1192. T0* R=NULL;
  1193. T0* _bcn=NULL;
  1194. _bcn=(((T707*)C))->_base_class_name/*4*/;
  1195. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1196. R=r451base_class(((T451*)_bcn));
  1197. }
  1198. else {
  1199. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1200. r7append(((T7*)(oBC683explanation)),b1);
  1201. }/*]*/
  1202. r683add_type((T0*)C,((T0*)ms67_470));
  1203. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1204. }
  1205. /*FI*/return R;
  1206. }
  1207. /*No:TYPE_BOOLEAN.call_gc_sweep_in*/
  1208. /*No:TYPE_BOOLEAN.gc_define2*/
  1209. /*No:TYPE_BOOLEAN.need_gc_mark_function*/
  1210. /*No:TYPE_BOOLEAN.is_any*/
  1211. /*No:TYPE_BOOLEAN.to_reference*/
  1212. /*No:TYPE_BOOLEAN.c_header_pass3*/
  1213. /*No:TYPE_BOOLEAN.us_boolean_ref*/
  1214. /*No:TYPE_BOOLEAN.base_class_name*/
  1215. /*No:TYPE_BOOLEAN.is_expanded*/
  1216. /*No:TYPE_BOOLEAN.is_basic_eiffel_expanded*/
  1217. /*No:TYPE_BOOLEAN.is_none*/
  1218. /*No:TYPE_BOOLEAN.to_expanded*/
  1219. /*No:TYPE_BOOLEAN.is_integer*/
  1220. /*No:TYPE_BOOLEAN.c_header_pass4*/
  1221. /*No:COUNTER.value*/
  1222. void r417increment(T417* C){
  1223. C->_value=((((T417*)C))->_value/*0*/)+(1);
  1224. }
  1225. /*No:IFTHENLIST.static_false*/
  1226. /*No:IFTHENLIST.make*/
  1227. /*No:IFTHENLIST.nb_errors*/
  1228. /*No:IFTHENLIST.static_true*/
  1229. int r712compile_to_c(T712* C){
  1230. int R=0;
  1231. int _i=0;
  1232. int _previous=0;
  1233. int _state=0;
  1234. _i=1;
  1235. while (!((_state)==(2))) {
  1236. {int z1=_state;
  1237.  
  1238. if((0==z1)){
  1239. /*IF*/if ((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/)) {
  1240. _state=2;
  1241. R=_previous;
  1242. }
  1243. else {
  1244. _previous=r809compile_to_c(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))),0);
  1245. {int z2=_previous;
  1246.  
  1247. if((1018==z2)){
  1248. _state=1;
  1249. }
  1250.  else 
  1251. if((1017==z2)){
  1252. }
  1253.  else {R=1016;
  1254. _state=2;
  1255. }}
  1256. }
  1257. /*FI*/}
  1258.  else{/*IF*/if ((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/)) {
  1259. _state=2;
  1260. {int z2=_previous;
  1261.  
  1262. if((1016==z2)){
  1263. R=1016;
  1264. }
  1265.  else{R=1018;
  1266. }}
  1267. }
  1268. else {
  1269. _previous=r809compile_to_c(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))),1);
  1270. {int z2=_previous;
  1271.  
  1272. if((1018==z2)){
  1273. }
  1274.  else 
  1275. if((1017==z2)){
  1276. }
  1277.  else {_state=2;
  1278. R=1016;
  1279. }}
  1280. }
  1281. /*FI*/}}
  1282. _i=(_i)+(1);
  1283. }
  1284. return R;
  1285. }
  1286. T0* r712to_runnable(T712* C,T0* a1){
  1287. T0* R=NULL;
  1288. int _i=0;
  1289. /*IF*/if (((((T712*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1290. {T712*n=malloc(sizeof(*n));
  1291. *n=M712;
  1292. /*[IRF3.3make*/((((T712*)(n)))->_list)=(r948twin(((T948*)((((T712*)C))->_list/*0*/))));
  1293. /*]*/
  1294. R=(T0*)n;
  1295. }
  1296. R=r712to_runnable(((T712*)R),a1);
  1297. }
  1298. else {
  1299. C->_run_compound=a1;
  1300. _i=1;
  1301. while (!(((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  1302. /*[IRF3.6put*/{T948* C1=((T948*)((((T712*)C))->_list/*0*/));
  1303. T0* b1=r809to_runnable(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))),a1);
  1304. int b2=_i;
  1305. ((((T948*)C1))->_storage/*0*/)[(b2)-((((T948*)C1))->_lower/*12*/)]=(b1);
  1306. }/*]*/
  1307. _i=(_i)+(1);
  1308. }
  1309. R=(T0*)C;
  1310. }
  1311. /*FI*/return R;
  1312. }
  1313. /*No:IFTHENLIST.list*/
  1314. /*No:IFTHENLIST.run_compound*/
  1315. /*No:IFTHENLIST.non_static*/
  1316. int r712use_current(T712* C){
  1317. int R=0;
  1318. int _i=0;
  1319. _i=1;
  1320. while (!(((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/))||(R))) {
  1321. R=r809use_current(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))));
  1322. _i=(_i)+(1);
  1323. }
  1324. return R;
  1325. }
  1326. /*No:IFTHENLIST.add_last*/
  1327. void r712afd_check(T712* C){
  1328. int _i=0;
  1329. _i=(((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/;
  1330. while (!((_i)==(0))) {
  1331. r809afd_check(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))));
  1332. _i=(_i)-(1);
  1333. }
  1334. }
  1335. /*No:CALL_INFIX_XOR.arguments*/
  1336. T0* r760add_comment(T760* C,T0* a1){
  1337. T0* R=NULL;
  1338. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1339. R=(T0*)C;
  1340. }
  1341. else {
  1342. {T529*n=malloc(sizeof(*n));
  1343. *n=M529;
  1344. r529make(n,(T0*)C,a1);
  1345. R=(T0*)n;
  1346. }
  1347. }
  1348. /*FI*/return R;
  1349. }
  1350. int r760to_integer(T760* C){
  1351. int R=0;
  1352. r760error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T760*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1353. return R;
  1354. }
  1355. int r760is_a(T760* C,T0* a1){
  1356. int R=0;
  1357. R=X291is_a(X291run_type((((T760*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  1358. /*IF*/if (!(R)) {
  1359. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T760*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  1360. r760error(X662start_position(a1),((T0*)ms4_662));
  1361. }
  1362. /*FI*/return R;
  1363. }
  1364. /*No:CALL_INFIX_XOR.is_current*/
  1365. void r760mapping_c_arg(T760* C,T0* a1){
  1366. T0* _actual_type=NULL;
  1367. _actual_type=X291run_type((((T760*)C))->_result_type/*20*/);
  1368. /*IF*/if (X291is_reference(_actual_type)) {
  1369. /*IF*/if (X291is_reference(a1)) {
  1370. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1371. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1372. }/*]*/
  1373. /*]*/
  1374. }
  1375. else {
  1376. X291to_expanded(_actual_type);
  1377. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1378. char b1='\50';
  1379. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1380. }/*]*/
  1381. /*]*/
  1382. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1383. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1384. }/*]*/
  1385. /*]*/
  1386. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1387. char b1='\51';
  1388. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1389. }/*]*/
  1390. /*]*/
  1391. }
  1392. /*FI*/}
  1393. else {
  1394. /*IF*/if (X291is_reference(a1)) {
  1395. X291to_reference(_actual_type);
  1396. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1397. char b1='\50';
  1398. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1399. }/*]*/
  1400. /*]*/
  1401. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1402. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1403. }/*]*/
  1404. /*]*/
  1405. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1406. char b1='\51';
  1407. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1408. }/*]*/
  1409. /*]*/
  1410. }
  1411. else {
  1412. /*IF*/if (X291need_c_struct(a1)) {
  1413. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1414. char b1='\46';
  1415. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1416. }/*]*/
  1417. /*]*/
  1418. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1419. char b1='\50';
  1420. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1421. }/*]*/
  1422. /*]*/
  1423. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1424. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1425. }/*]*/
  1426. /*]*/
  1427. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1428. char b1='\51';
  1429. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1430. }/*]*/
  1431. /*]*/
  1432. }
  1433. else {
  1434. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1435. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1436. }/*]*/
  1437. /*]*/
  1438. }
  1439. /*FI*/}
  1440. /*FI*/}
  1441. /*FI*/}
  1442. /*No:CALL_INFIX_XOR.static_value*/
  1443. void r760make(T760* C,T0* a1,T0* a2,T0* a3){
  1444. T0* _eal=NULL;
  1445. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1446. r683add_position(a2);
  1447. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1448. r683fatal_error(((T683*)(oBC364eh)),b1);
  1449. }/*]*/
  1450. }
  1451. /*FI*/{T454*n=malloc(sizeof(*n));
  1452. *n=M454;
  1453. r454make(n,r760operator(),a2);
  1454. C->_feature_name=(T0*)n;
  1455. }
  1456. {T431*n=malloc(sizeof(*n));
  1457. *n=M431;
  1458. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1459. /*]*/
  1460. _eal=(T0*)n;
  1461. }
  1462. r760make_call_1(C,a1,(((T760*)C))->_feature_name/*28*/,_eal);
  1463. }
  1464. void r760mapping_c_target(T760* C,T0* a1){
  1465. T0* _actual_type=NULL;
  1466. int _flag=0;
  1467. _flag=r324call_invariant_start(a1);
  1468. _actual_type=X291run_type((((T760*)C))->_result_type/*20*/);
  1469. /*IF*/if (X291is_reference(_actual_type)) {
  1470. /*IF*/if (X291is_reference(a1)) {
  1471. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1472. char b1='\50';
  1473. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1474. }/*]*/
  1475. /*]*/
  1476. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1477. char b1='\50';
  1478. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1479. }/*]*/
  1480. /*]*/
  1481. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1482. char b1='T';
  1483. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1484. }/*]*/
  1485. /*]*/
  1486. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  1487. /*]*/
  1488. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1489. char b1='\52';
  1490. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1491. }/*]*/
  1492. /*]*/
  1493. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1494. char b1='\51';
  1495. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1496. }/*]*/
  1497. /*]*/
  1498. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1499. char b1='\50';
  1500. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1501. }/*]*/
  1502. /*]*/
  1503. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1504. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1505. }/*]*/
  1506. /*]*/
  1507. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1508. char b1='\51';
  1509. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1510. }/*]*/
  1511. /*]*/
  1512. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1513. char b1='\51';
  1514. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1515. }/*]*/
  1516. /*]*/
  1517. }
  1518. else {
  1519. X291to_expanded(_actual_type);
  1520. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1521. char b1='\50';
  1522. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1523. }/*]*/
  1524. /*]*/
  1525. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1526. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1527. }/*]*/
  1528. /*]*/
  1529. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1530. char b1='\51';
  1531. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1532. }/*]*/
  1533. /*]*/
  1534. }
  1535. /*FI*/}
  1536. else {
  1537. /*IF*/if (X291is_reference(a1)) {
  1538. X291to_reference(_actual_type);
  1539. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1540. char b1='\50';
  1541. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1542. }/*]*/
  1543. /*]*/
  1544. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1545. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1546. }/*]*/
  1547. /*]*/
  1548. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1549. char b1='\51';
  1550. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1551. }/*]*/
  1552. /*]*/
  1553. }
  1554. else {
  1555. /*IF*/if (X291need_c_struct(a1)) {
  1556. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1557. char b1='\46';
  1558. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1559. }/*]*/
  1560. /*]*/
  1561. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1562. char b1='\50';
  1563. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1564. }/*]*/
  1565. /*]*/
  1566. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1567. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1568. }/*]*/
  1569. /*]*/
  1570. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1571. char b1='\51';
  1572. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1573. }/*]*/
  1574. /*]*/
  1575. }
  1576. else {
  1577. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T760* C1=C;
  1578. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1579. }/*]*/
  1580. /*]*/
  1581. }
  1582. /*FI*/}
  1583. /*FI*/}
  1584. /*FI*//*IF*/if (_flag) {
  1585. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  1586. char b1='\51';
  1587. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1588. }/*]*/
  1589. /*]*/
  1590. }
  1591. /*FI*/}
  1592. /*No:CALL_INFIX_XOR.nb_errors*/
  1593. /*No:CALL_INFIX_XOR.feature_name*/
  1594. /*No:CALL_INFIX_XOR.fz_iinaiv*/
  1595. /*No:CALL_INFIX_XOR.arg_count*/
  1596. /*No:CALL_INFIX_XOR.dca_inline_argument*/
  1597. /*No:CALL_INFIX_XOR.run_feature*/
  1598. /*No:CALL_INFIX_XOR.call_proc_call_c2c*/
  1599. /*No:CALL_INFIX_XOR.start_position*/
  1600. /*No:CALL_INFIX_XOR.target*/
  1601. /*No:CALL_INFIX_XOR.compile_to_c*/
  1602. /*No:CALL_INFIX_XOR.c_simple*/
  1603. T0* r760to_runnable(T760* C,T0* a1){
  1604. T0* R=NULL;
  1605. T0* _tla=NULL;
  1606. T0* _a=NULL;
  1607. /*IF*/if (((((T760*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1608. r760to_runnable_0(C,a1);
  1609. _a=X431to_runnable((((T760*)C))->_arguments/*24*/,a1);
  1610. /*IF*/if ((_a)==((void*)(NULL))) {
  1611. r760error(X662start_position(r760arg1(C)),((T0*)ms55_470));
  1612. }
  1613. else {
  1614. C->_arguments=_a;
  1615. }
  1616. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1617. X431match_with((((T760*)C))->_arguments/*24*/,(((T760*)C))->_run_feature/*16*/);
  1618. }
  1619. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1620. _tla=(((T760*)C))->_result_type/*20*/;
  1621. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1622. case 239: 
  1623. break;
  1624. default:
  1625. _tla=NULL;
  1626. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1627. C->_result_type=X291run_type(X662result_type(r760arg1(C)));
  1628. }
  1629. /*FI*/}
  1630. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1631. R=(T0*)C;
  1632. }
  1633. /*FI*/}
  1634. else {
  1635. R=r760twin(C);
  1636. /*[IRF3.3set_current_type*/((((T760*)(((T760*)R))))->_current_type)=(NULL);
  1637. /*]*/
  1638. R=r760to_runnable(((T760*)R),a1);
  1639. }
  1640. /*FI*/return R;
  1641. }
  1642. /*No:CALL_INFIX_XOR.result_type*/
  1643. /*No:CALL_INFIX_XOR.is_result*/
  1644. T0* r760twin(T760* C){
  1645. T0* R=NULL;
  1646. R=malloc(sizeof(*C));
  1647. *((T760*)R)=*C;
  1648. return R;
  1649. }
  1650. /*No:CALL_INFIX_XOR.set_current_type*/
  1651. T0* r760operator(void){
  1652. T0* R=NULL;
  1653. R=((T0*)ms50_473);
  1654. return R;
  1655. }
  1656. int r760is_static(T760* C){
  1657. int R=0;
  1658. /*IF*/if (X291is_boolean(X662result_type((((T760*)C))->_target/*12*/))) {
  1659. /*IF*/if ((X662is_static((((T760*)C))->_target/*12*/))&&(X662is_static(r760arg1(C)))) {
  1660. R=1;
  1661. C->_static_value_mem=(X662static_value((((T760*)C))->_target/*12*/))+(X662static_value(r760arg1(C)));
  1662. /*IF*/if (((((T760*)C))->_static_value_mem/*4*/)==(1)) {
  1663. C->_static_value_mem=1;
  1664. }
  1665. else {
  1666. C->_static_value_mem=0;
  1667. }
  1668. /*FI*/}
  1669. /*FI*/}
  1670. /*FI*/return R;
  1671. }
  1672. /*No:CALL_INFIX_XOR.fz_07*/
  1673. /*No:CALL_INFIX_XOR.can_be_dropped*/
  1674. /*No:CALL_INFIX_XOR.current_type*/
  1675. void r760compile_to_c_old(T760* C){
  1676. X662compile_to_c_old((((T760*)C))->_target/*12*/);
  1677. /*IF*/{/*AT*/X431compile_to_c_old((((T760*)C))->_arguments/*24*/);
  1678. }
  1679. /*FI*/}
  1680. /*No:CALL_INFIX_XOR.static_value_mem*/
  1681. void r760make_call_1(T760* C,T0* a1,T0* a2,T0* a3){
  1682. C->_target=a1;
  1683. C->_feature_name=a2;
  1684. C->_arguments=a3;
  1685. }
  1686. /*No:CALL_INFIX_XOR.is_manifest_string*/
  1687. /*No:CALL_INFIX_XOR.is_void*/
  1688. /*No:CALL_INFIX_XOR.us_xor*/
  1689. void r760to_runnable_0(T760* C,T0* a1){
  1690. C->_current_type=a1;
  1691. r760cpc_to_runnable(C,a1);
  1692. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T760*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1693. /*IF*/if (((((T760*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1694. r683add_position(X496start_position((((T760*)C))->_run_feature/*16*/));
  1695. r760error((((T454*)((T454*)((((T760*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  1696. }
  1697.  else if (X291is_like_current((((T760*)C))->_result_type/*20*/)) {
  1698. C->_result_type=X662result_type((((T760*)C))->_target/*12*/);
  1699. }
  1700. /*FI*/}
  1701. /*No:CALL_INFIX_XOR.is_pre_computable*/
  1702. void r760cpc_to_runnable(T760* C,T0* a1){
  1703. T0* _rc=NULL;
  1704. T0* _t=NULL;
  1705. _t=X662to_runnable((((T760*)C))->_target/*12*/,a1);
  1706. /*IF*/if ((_t)==((void*)(NULL))) {
  1707. r683add_position(X662start_position((((T760*)C))->_target/*12*/));
  1708. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1709. r683fatal_error(((T683*)(oBC364eh)),b1);
  1710. }/*]*/
  1711. }
  1712. /*FI*/C->_target=_t;
  1713. _rc=X291run_class(X662result_type((((T760*)C))->_target/*12*/));
  1714. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1715. r576update((((T760*)C))->_target/*12*/,(((T760*)C))->_run_feature/*16*/);
  1716. }
  1717. int r760use_current(T760* C){
  1718. int R=0;
  1719. /*IF*/{/*AT*/R=X431use_current((((T760*)C))->_arguments/*24*/);
  1720. }
  1721. /*FI*//*IF*/if (R) {
  1722. }
  1723.  else if (X662is_current((((T760*)C))->_target/*12*/)) {
  1724. R=X496use_current((((T760*)C))->_run_feature/*16*/);
  1725. }
  1726. else {
  1727. R=X662use_current((((T760*)C))->_target/*12*/);
  1728. }
  1729. /*FI*/return R;
  1730. }
  1731. void r760finalize(T760* C){
  1732. T0* _rf=NULL;
  1733. T0* _rc=NULL;
  1734. _rf=(((T760*)C))->_run_feature/*16*/;
  1735. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  1736. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  1737. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  1738. C->_run_feature=_rf;
  1739. }
  1740. /*FI*/}
  1741. void r760error(T0* a1,T0* a2){
  1742. r683add_position(a1);
  1743. r683error(((T683*)(oBC364eh)),a2);
  1744. }
  1745. /*No:CALL_INFIX_XOR.isa_dca_inline_argument*/
  1746. /*No:CALL_INFIX_XOR.fatal_error*/
  1747. /*No:CALL_INFIX_XOR.fz_bad_argument*/
  1748. T0* r760arg1(T760* C){
  1749. T0* R=NULL;
  1750. R=X431first((((T760*)C))->_arguments/*24*/);
  1751. return R;
  1752. }
  1753. void r760afd_check(T760* C){
  1754. T0* _running=NULL;
  1755. T0* _rc=NULL;
  1756. _rc=X291run_class(X662result_type((((T760*)C))->_target/*12*/));
  1757. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1758. /*IF*/if ((_running)==((void*)(NULL))) {
  1759. r683add_position(X662start_position((((T760*)C))->_target/*12*/));
  1760. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1761. r7append(((T7*)(oBC683explanation)),b1);
  1762. }/*]*/
  1763. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1764. r7append(((T7*)(oBC683explanation)),b1);
  1765. }/*]*/
  1766. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1767. r7append(((T7*)(oBC683explanation)),b1);
  1768. }/*]*/
  1769. r683print_as_warning(((T683*)(oBC364eh)));
  1770. r355set_at_run_time(((T355*)_rc));
  1771. }
  1772.  else if ((r396count(((T396*)_running)))>(0)) {
  1773. r576update((((T760*)C))->_target/*12*/,(((T760*)C))->_run_feature/*16*/);
  1774. }
  1775. /*FI*/X662afd_check((((T760*)C))->_target/*12*/);
  1776. /*IF*/{/*AT*/X431afd_check((((T760*)C))->_arguments/*24*/);
  1777. }
  1778. /*FI*/}
  1779. T0* r716add_comment(T716* C,T0* a1){
  1780. T0* R=NULL;
  1781. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1782. R=(T0*)C;
  1783. }
  1784. else {
  1785. {T529*n=malloc(sizeof(*n));
  1786. *n=M529;
  1787. r529make(n,(T0*)C,a1);
  1788. R=(T0*)n;
  1789. }
  1790. }
  1791. /*FI*/return R;
  1792. }
  1793. int r716to_integer(T716* C){
  1794. int R=0;
  1795. r716error((((T716*)C))->_start_position/*20*/,((T0*)ms69_470));
  1796. return R;
  1797. }
  1798. int r716is_a(T716* C,T0* a1){
  1799. int R=0;
  1800. R=X291is_a(X291run_type(/*(IRF4.3result_type*/(((T716*)C))->_current_type/*8*//*)*/),X291run_type(X662result_type(a1)));
  1801. /*IF*/if (!(R)) {
  1802. r683add_position((((T716*)C))->_start_position/*20*/);
  1803. r716error(X662start_position(a1),((T0*)ms4_662));
  1804. }
  1805. /*FI*/return R;
  1806. }
  1807. /*No:CECIL_TARGET.is_current*/
  1808. void r716mapping_c_arg(T716* C,T0* a1){
  1809. T0* _rt=NULL;
  1810. _rt=X291run_type(/*(IRF4.3result_type*/(((T716*)C))->_current_type/*8*//*)*/);
  1811. /*IF*/if (X291is_reference(_rt)) {
  1812. /*IF*/if (X291is_reference(a1)) {
  1813. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms85_470));
  1814. /*]*/
  1815. r324print_current(((T324*)(oBC364cpp)));
  1816. }
  1817. else {
  1818. X291to_expanded(_rt);
  1819. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1820. char b1='\50';
  1821. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1822. }/*]*/
  1823. /*]*/
  1824. r324print_current(((T324*)(oBC364cpp)));
  1825. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1826. char b1='\51';
  1827. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1828. }/*]*/
  1829. /*]*/
  1830. }
  1831. /*FI*/}
  1832. else {
  1833. /*IF*/if (X291is_reference(a1)) {
  1834. X291to_reference(_rt);
  1835. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1836. char b1='\50';
  1837. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1838. }/*]*/
  1839. /*]*/
  1840. r324print_current(((T324*)(oBC364cpp)));
  1841. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1842. char b1='\51';
  1843. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1844. }/*]*/
  1845. /*]*/
  1846. }
  1847. else {
  1848. r324print_current(((T324*)(oBC364cpp)));
  1849. }
  1850. /*FI*/}
  1851. /*FI*/}
  1852. /*No:CECIL_TARGET.static_value*/
  1853. /*No:CECIL_TARGET.is_written*/
  1854. void r716make(T716* C,T0* a1){
  1855. r716super_make(C,X496start_position(a1),0);
  1856. C->_current_type=/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/);
  1857. }
  1858. void r716mapping_c_target(T716* C,T0* a1){
  1859. int _flag=0;
  1860. /*IF*/if ((((T716*)C))->_is_written/*16*/) {
  1861. _flag=r324call_invariant_start(a1);
  1862. }
  1863. /*FI*/r324print_current(((T324*)(oBC364cpp)));
  1864. /*IF*/if (_flag) {
  1865. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  1866. char b1='\51';
  1867. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1868. }/*]*/
  1869. /*]*/
  1870. }
  1871. /*FI*/}
  1872. /*No:CECIL_TARGET.us_current*/
  1873. /*No:CECIL_TARGET.to_string*/
  1874. /*No:CECIL_TARGET.fz_iinaiv*/
  1875. /*No:CECIL_TARGET.dca_inline_argument*/
  1876. /*No:CECIL_TARGET.start_position*/
  1877. void r716compile_to_c(T716* C){
  1878. /*IF*/if (X291is_user_expanded(/*(IRF4.3result_type*/(((T716*)C))->_current_type/*8*//*)*/)) {
  1879. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1880. char b1='\52';
  1881. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1882. }/*]*/
  1883. /*]*/
  1884. }
  1885. /*FI*/r324print_current(((T324*)(oBC364cpp)));
  1886. }
  1887. /*No:CECIL_TARGET.c_simple*/
  1888. T0* r716to_runnable(T716* C,T0* a1){
  1889. T0* R=NULL;
  1890. /*IF*/if (((((T716*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1891. C->_current_type=a1;
  1892. R=(T0*)C;
  1893. }
  1894.  else if (((((T716*)C))->_current_type/*8*/)==((void*)(a1))) {
  1895. R=(T0*)C;
  1896. }
  1897. else {
  1898. {T716*n=malloc(sizeof(*n));
  1899. *n=M716;
  1900. r716super_make(n,(((T716*)C))->_start_position/*20*/,(((T716*)C))->_is_written/*16*/);
  1901. R=(T0*)n;
  1902. }
  1903. /*[IRF3.3set_current_type*/((((T716*)(((T716*)R))))->_current_type)=(a1);
  1904. /*]*/
  1905. }
  1906. /*FI*/return R;
  1907. }
  1908. /*No:CECIL_TARGET.result_type*/
  1909. /*No:CECIL_TARGET.is_result*/
  1910. /*No:CECIL_TARGET.set_current_type*/
  1911. /*No:CECIL_TARGET.is_static*/
  1912. /*No:CECIL_TARGET.can_be_dropped*/
  1913. /*No:CECIL_TARGET.current_type*/
  1914. /*No:CECIL_TARGET.compile_to_c_old*/
  1915. /*No:CECIL_TARGET.static_value_mem*/
  1916. void r716super_make(T716* C,T0* a1,int a2){
  1917. C->_start_position=a1;
  1918. C->_is_written=a2;
  1919. C->_to_string=((T0*)ms143_473);
  1920. }
  1921. /*No:CECIL_TARGET.is_manifest_string*/
  1922. /*No:CECIL_TARGET.is_void*/
  1923. /*No:CECIL_TARGET.is_pre_computable*/
  1924. /*No:CECIL_TARGET.fz_cast_t0_star*/
  1925. /*No:CECIL_TARGET.use_current*/
  1926. void r716error(T0* a1,T0* a2){
  1927. r683add_position(a1);
  1928. r683error(((T683*)(oBC364eh)),a2);
  1929. }
  1930. /*No:CECIL_TARGET.isa_dca_inline_argument*/
  1931. /*No:CECIL_TARGET.afd_check*/
  1932. int r669id(T669* C){
  1933. int R=0;
  1934. R=(((T605*)((T605*)(r669base_class(C)))))->_id/*0*/;
  1935. return R;
  1936. }
  1937. /*No:TYPE_ANY.gc_set_unmarked_in*/
  1938. int r669has_creation(T669* C,T0* a1){
  1939. int R=0;
  1940. r683add_position(X776start_position(a1));
  1941. r669error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T669*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_669));
  1942. return R;
  1943. }
  1944. /*No:TYPE_ANY.is_anchored*/
  1945. /*No:TYPE_ANY.is_array*/
  1946. /*No:TYPE_ANY.fz_typedef*/
  1947. /*No:TYPE_ANY.fz_else*/
  1948. int r669is_a(T669* C,T0* a1){
  1949. int R=0;
  1950. /*IF*/if (X291is_any(a1)) {
  1951. R=1;
  1952. }
  1953. else {
  1954. R=r605is_subclass_of(((T605*)(r669base_class(C))),X291base_class(a1));
  1955. }
  1956. /*FI*//*IF*/if (!(R)) {
  1957. r683add_type((T0*)C,((T0*)ms71_470));
  1958. r683add_type(a1,((T0*)ms67_470));
  1959. }
  1960. /*FI*/return R;
  1961. }
  1962. void r669gcmt_max_in(T669* C,T0* a1){
  1963. r7append(((T7*)a1),((T0*)ms55_291));
  1964. r2append_in(r669id(C),a1);
  1965. }
  1966. /*No:TYPE_ANY.c_initialize_in*/
  1967. /*No:TYPE_ANY.fz_gc_sweep*/
  1968. /*No:TYPE_ANY.c_type_for_argument_in*/
  1969. void r669gc_call_new_in(T669* C,T0* a1){
  1970. r7append(((T7*)a1),((T0*)ms115_470));
  1971. r2append_in(r669id(C),a1);
  1972. r7extend(((T7*)a1),'\50');
  1973. r7extend(((T7*)a1),'\51');
  1974. }
  1975. /*No:TYPE_ANY.fz_se_cmpt*/
  1976. int r669space_for_pointer(void){
  1977. int R=0;
  1978. void* _p=0;
  1979. R=sizeof(T8);
  1980. return R;
  1981. }
  1982. /*No:TYPE_ANY.run_type*/
  1983. /*No:TYPE_ANY.is_pointer*/
  1984. void r669gc_align_mark_in(T669* C,T0* a1){
  1985. r7append(((T7*)a1),((T0*)ms58_291));
  1986. r2append_in(r669id(C),a1);
  1987. }
  1988. /*No:TYPE_ANY.is_dummy_expanded*/
  1989. void r669gcmt_used_in(T669* C,T0* a1){
  1990. r7append(((T7*)a1),((T0*)ms56_291));
  1991. r2append_in(r669id(C),a1);
  1992. }
  1993. /*No:TYPE_ANY.is_string*/
  1994. /*No:TYPE_ANY.space_for_variable*/
  1995. void r669standard_c_struct(T669* C){
  1996. T0* _t=NULL;
  1997. T0* _a=NULL;
  1998. int _mem_id=0;
  1999. int _i=0;
  2000. T0* _wa=NULL;
  2001. _mem_id=r669id(C);
  2002. _wa=r355writable_attributes(((T355*)(r669run_class(C))));
  2003. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  2004. r7extend(((T7*)(oBC291tmp_string)),'S');
  2005. r2append_in(_mem_id,oBC291tmp_string);
  2006. r7extend(((T7*)(oBC291tmp_string)),'\173');
  2007. /*IF*/{/*AT*//*IF*/if (r355is_tagged(((T355*)(r669run_class(C))))) {
  2008. r7append(((T7*)(oBC291tmp_string)),((T0*)ms4_291));
  2009. }
  2010. /*FI*/}
  2011. /*FI*//*IF*/if ((_wa)!=((void*)(NULL))) {
  2012. _i=(((T280*)((T280*)_wa)))->_upper/*12*/;
  2013. while (!((_i)==(0))) {
  2014. _a=r280item(((T280*)_wa),_i);
  2015. _t=X291run_type((((T820*)((T820*)_a)))->_result_type/*24*/);
  2016. X291c_type_for_result_in(_t,oBC291tmp_string);
  2017. r7extend(((T7*)(oBC291tmp_string)),'\40');
  2018. r7extend(((T7*)(oBC291tmp_string)),'\137');
  2019. r7append(((T7*)(oBC291tmp_string)),X776to_string((((T820*)((T820*)_a)))->_name/*16*/));
  2020. r7extend(((T7*)(oBC291tmp_string)),'\73');
  2021. _i=(_i)-(1);
  2022. }
  2023. }
  2024. /*FI*/r7extend(((T7*)(oBC291tmp_string)),'\175');
  2025. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  2026. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  2027. /*]*/
  2028. /*IF*//*AF*//*AE*/
  2029. /*FI*/}
  2030. /*No:TYPE_ANY.is_like_feature*/
  2031. /*No:TYPE_ANY.fz_t0_star*/
  2032. /*No:TYPE_ANY.is_like_current*/
  2033. void r669make(T669* C,T0* a1){
  2034. {T451*n=malloc(sizeof(*n));
  2035. *n=M451;
  2036. r451make(n,((T0*)ms1_473),a1);
  2037. C->_base_class_name=(T0*)n;
  2038. }
  2039. }
  2040. /*No:TYPE_ANY.nb_errors*/
  2041. /*No:TYPE_ANY.fz_gc*/
  2042. /*No:TYPE_ANY.gc_if_marked_in*/
  2043. /*No:TYPE_ANY.fz_gc_sweep_pool*/
  2044. int fBC669check_type=0;
  2045. void r669check_type(T669* C){
  2046. if (fBC669check_type==0){
  2047. T0* _rc=NULL;
  2048. T0* _bc=NULL;
  2049. fBC669check_type=1;
  2050. _bc=r669base_class(C);
  2051. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2052. _rc=r669run_class(C);
  2053. }
  2054. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2055. /*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
  2056. r669error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T669*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_669));
  2057. }
  2058. /*FI*/}
  2059. /*FI*/}}
  2060. void r669mapping_cast(T669* C){
  2061. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  2062. /*]*/
  2063. r7extend(((T7*)(oBC291tmp_string)),'\50');
  2064. r669c_type_for_target_in(C,oBC291tmp_string);
  2065. r7extend(((T7*)(oBC291tmp_string)),'\51');
  2066. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  2067. /*]*/
  2068. }
  2069. /*No:TYPE_ANY.start_position*/
  2070. void r669c_type_for_target_in(T669* C,T0* a1){
  2071. r7extend(((T7*)a1),'T');
  2072. r2append_in(r669id(C),a1);
  2073. r7extend(((T7*)a1),'\52');
  2074. }
  2075. /*No:TYPE_ANY.fz_printf*/
  2076. void r669gc_free_in(T669* C,T0* a1){
  2077. r7append(((T7*)a1),((T0*)ms57_291));
  2078. r2append_in(r669id(C),a1);
  2079. }
  2080. /*No:TYPE_ANY.gc_set_marked_in*/
  2081. /*No:TYPE_ANY.fz_gc_mark*/
  2082. /*No:TYPE_ANY.fz_inako*/
  2083. void r669standard_gc_initialize(T669* C){
  2084. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  2085. /*]*/
  2086. r669gcmt_in(C,oBC291tmp_string);
  2087. r7append(((T7*)(oBC291tmp_string)),((T0*)ms53_291));
  2088. r669gcmt_max_in(C,oBC291tmp_string);
  2089. r7append(((T7*)(oBC291tmp_string)),((T0*)ms150_470));
  2090. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  2091. /*]*/
  2092. }
  2093. /*No:TYPE_ANY.gc_initialize*/
  2094. /*No:TYPE_ANY.fz_00*/
  2095. /*No:TYPE_ANY.is_character*/
  2096. /*No:TYPE_ANY.is_user_expanded*/
  2097. T0* r669written_mark(void){
  2098. T0* R=NULL;
  2099. R=((T0*)ms1_473);
  2100. return R;
  2101. }
  2102. /*No:TYPE_ANY.is_run_type*/
  2103. T0* r669to_runnable(T669* C,T0* a1){
  2104. T0* R=NULL;
  2105. R=(T0*)C;
  2106. r669check_type(C);
  2107. return R;
  2108. }
  2109. /*No:TYPE_ANY.fz_c_if_eq_null*/
  2110. /*No:TYPE_ANY.fz_10*/
  2111. void r669c_type_for_external_in(T0* a1){
  2112. /*IF*/{/*AT*/r7append(((T7*)a1),((T0*)ms133_470));
  2113. r7extend(((T7*)a1),'\52');
  2114. }
  2115. /*FI*/}
  2116. T0* r669generic_list(T669* C){
  2117. T0* R=NULL;
  2118. r669fatal_error_generic_list(C);
  2119. return R;
  2120. }
  2121. /*No:TYPE_ANY.is_formal_generic*/
  2122. /*No:TYPE_ANY.fz_null*/
  2123. void r669demangling_in(T0* a1){
  2124. /*IF*/{/*AT*/r7extend(((T7*)a1),'R');
  2125. }
  2126. /*FI*/r7extend(((T7*)a1),'\40');
  2127. r7append(((T7*)a1),r669run_time_mark());
  2128. }
  2129. /*No:TYPE_ANY.is_real*/
  2130.  
  2131.